This class is meant as an emulation of SCPopUpMenu. last mod: 04-apr-07 sciss
Also refer to JSCView for different behaviour affecting all widgets
| no-op / not working | |
| background | background colour cannot be changed |
| different behaviour | |
| size | gadget height is fixed and look-and-feel dependant. for aqua (os x) the height is around 26px including focus border |
| alignment | text is left aligned, not centered |
| extended functionality | |
| allowsReselection | can be set to 'true' to trigger action even if the user selects the same item again |
| known issues / todo | |
| drag-n-drop | drag gesture not yet recognized |
| background | cannot be made transparent since it introduces drawing glitches in the menu (with apple's vm) - the background colour is used also for the menu. default background is therefore not Color.clear |
Note: please use the abstraction layer GUI.popUpMenu if possible! (see GUI)
A button element to which a list of items is attached. The item list gets pop'ed up when you click on the button. The currently selected item is displayed in the button.
(
var items;
w = JSCWindow( "JSCPopUpMenu", Rect( 200, 200, 200, 50 ), resizable: false );
items = [
"left view", "left thinking", "left mindfulness", "left speech",
"left action", "left diligence", "left concentration", "left livelihood"
];
m = JSCPopUpMenu( w, Rect( 10, 10, 180, 26 ));
m.items = items;
m.action = { arg butt;
// .value returns the index (integer) of the currently selected item
[ butt.value, butt.items.at( butt.value )].postcs;
};
w.front;
)
You will notice that the action is not called if the user re-selects the same item. You can change this behaviour by setting allowsReselection to true (works only in SwingOSC!):
m.allowsReselection = true;
space bar | open menu (look-and-feel dependant) |
csr up/down | open menu and scroll (look-and-feel dependant) |
return | choose selected item (look-and-feel dependant) |
csr left/right | decrease/increase selected item |